جزوه · فصل پنجم · جلسه ۵۵ · ارسال پیام به کاربر ← بازگشت به فهرست
📘 فصل پنجم · جلسه ۵۵ ارسال پیام به کاربر
📅 تاریخ: چهارشنبه، ۲۸ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat
این جلسه بیشتر جنبه‌ی مدیریتی و امنیتی دارد. نکات مربوط به فایل‌های issue و motd در امتحان عملی مهم هستند.
📢 قبل از شروع، یه مثال ساده:

فرض کن مدیر یه شرکت هستی و می‌خوای به همه کارمندان پیام بدی. سه تا راه داری: قبل از ورود (مثل تابلو جلوی در)، بعد از ورود (مثل پیام خوش‌آمدگویی روی میز)، یا پیام اختصاصی (مثل ایمیل یا پیامک به یه نفر خاص). توی لینوکس هم دقیقاً همین سه روش وجود داره!

▍ مقدمه

در لینوکس، مدیر سیستم می‌تواند به روش‌های مختلفی با کاربران ارتباط برقرار کند. این ارتباط می‌تواند به صورت پیام‌های سیستمی، اطلاعیه‌های امنیتی یا پیام‌های شخصی باشد. در این جلسه، با سه دسته اصلی ارسال پیام آشنا می‌شویم.

▍ دسته‌بندی ارسال پیام به کاربر

🔹 قبل از وارد شدن به سیستم

  • فایل /etc/issue
  • فایل /etc/issue.net

🔹 بعد از وارد شدن به سیستم

  • فایل /etc/motd (Message of the Day)

🔹 ارسال پیام اختصاصی به کاربر

  • دستور wall
  • دستور notify-send
  • دستور mail

▍ روش اول: قبل از وارد شدن به سیستم

• فایل /etc/issue

این فایل پیامی است که قبل از ورود کاربر و در صفحه لاگین (روی کنسول محلی) نمایش داده می‌شود.

┌──(ya3in㉿kali)-[~] └─$ cat /etc/issue Kali GNU/Linux Rolling \n \l

توضیح: \n نشان‌دهنده نام هاست (hostname) و \l نشان‌دهنده نام ترمینال است.

فایل /etc/issue فقط روی کنسول محلی (محلی) نمایش داده می‌شود، نه از طریق شبکه (SSH).

• فایل /etc/issue.net

این فایل مشابه /etc/issue است، اما برای ورود از طریق شبکه (مثلاً SSH) استفاده می‌شود.

┌──(ya3in㉿kali)-[~] └─$ cat /etc/issue.net Welcome to Kali Linux

توضیح: این پیام هنگام اتصال از طریق SSH (قبل از وارد شدن) به کاربر نشان داده می‌شود.

تفاوت /etc/issue و /etc/issue.net: اولی برای کنسول محلی و دومی برای اتصالات شبکه (SSH) است.

▍ روش دوم: بعد از وارد شدن به سیستم

• فایل /etc/motd (Message of the Day)

این فایل پیامی است که بلافاصله بعد از ورود موفق کاربر (چه از طریق کنسول محلی و چه از طریق SSH) نمایش داده می‌شود.

┌──(ya3in㉿kali)-[~] └─$ cat /etc/motd Welcome to Kali Linux! This system is for authorized users only.

توضیح: این پیام معمولاً برای اطلاعیه‌های مهم، هشدارهای امنیتی یا قوانین استفاده از سیستم استفاده می‌شود.

فایل /etc/motd در هر دو نوع ورود (محلی و شبکه) نمایش داده می‌شود.

• تغییر محتوای motd

برای تغییر پیام، کافی است فایل /etc/motd را با یک ویرایشگر (مثل nano) ویرایش کنید.

┌──(ya3in㉿kali)-[~] └─$ sudo nano /etc/motd

توضیح: با ویرایش این فایل، می‌توانید پیام دلخواه خود را برای همه کاربران نمایش دهید.

💡 نکته: در برخی توزیع‌ها، محتوای /etc/motd به‌صورت پویا از اسکریپت‌های /etc/update-motd.d/ تولید می‌شود. برای تغییر دائمی، بهتر است این اسکریپت‌ها را غیرفعال کنید.

▍ روش سوم: ارسال پیام اختصاصی به کاربر

• دستور wall (Write to All)

این دستور یک پیام را به همه کاربران متصل به سیستم ارسال می‌کند.

┌──(ya3in㉿kali)-[~] └─$ wall "سیستم در ۵ دقیقه آینده ری‌استارت می‌شود" Broadcast message from ya3in@kali (pts/0) (Thu Aug 28 14:30:00 2025): سیستم در ۵ دقیقه آینده ری‌استارت می‌شود

توضیح: wall پیام را برای همه کاربران لاگین‌شده می‌فرستد.

wall برای ارسال پیام به همه کاربران استفاده می‌شود و نیاز به دسترسی root یا مجوز مناسب دارد.

• دستور notify-send

این دستور یک اعلان دسکتاپ (Desktop Notification) در محیط گرافیکی (GUI) نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ notify-send "هشدار" "فضای دیسک رو به اتمام است"

توضیح: این دستور فقط در محیط‌های گرافیکی (مانند GNOME، KDE) کار می‌کند و یک پیام اعلان (Notification) را به کاربر نشان می‌دهد.

notify-send فقط در محیط گرافیکی (GUI) کار می‌کند و برای کاربردهای خودکار (اسکریپت‌ها) بسیار مفید است.

• دستور mail

این دستور برای ارسال ایمیل به کاربران یا افراد دیگر استفاده می‌شود.

┌──(ya3in㉿kali)-[~] └─$ mail -s "موضوع پیام" user@example.com این متن ایمیل است. (با Ctrl+D ارسال می‌شود)

توضیح: mail یک ابزار ساده برای ارسال و دریافت ایمیل در خط فرمان است.

mail برای ارسال ایمیل استفاده می‌شود. برای نصب آن در دبیان/کالی از sudo apt install mailutils استفاده کنید.

▍ خلاصه و جمع‌بندی

روش فایل/دستور زمان نمایش مخاطب
قبل از ورود /etc/issue قبل از لاگین کاربران کنسول محلی
قبل از ورود (شبکه) /etc/issue.net قبل از لاگین SSH کاربران SSH
بعد از ورود /etc/motd بعد از لاگین همه کاربران
پیام اختصاصی (همه) wall هر زمان همه کاربران لاگین‌شده
پیام اختصاصی (GUI) notify-send هر زمان کاربر جاری (محیط گرافیکی)
پیام اختصاصی (ایمیل) mail هر زمان کاربر مشخص
✅ جمع‌بندی نهایی برای امتحان:
  • /etc/issue → قبل از لاگین روی کنسول محلی
  • /etc/issue.net → قبل از لاگین از طریق SSH
  • /etc/motd → بعد از لاگین (همه کاربران)
  • wall → پیام به همه کاربران لاگین‌شده
  • notify-send → اعلان گرافیکی
  • mail → ارسال ایمیل
در امتحان معمولاً سوال می‌شود: «برای نمایش پیام قبل از لاگین در SSH از کدام فایل استفاده می‌شود؟» پاسخ: /etc/issue.net